﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;

namespace nGSO
{
    [XmlInclude(typeof(ExtendedAgentJump))]
    [XmlInclude(typeof(NeighborhoodRangeExtender))]
    public abstract class BaseAfterAgentMoveExtension
    {
        [XmlAttribute]
        public bool Enabled { get; set; }

        [XmlAttribute]
        public abstract string Name { get; }

        public abstract void Apply(Agent agent, GsoConfig config, ObjectiveFunction fitnessFun);
    }
}
